package com.itheima.ai.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * MvcConfiguration 类用于配置 Spring MVC 的相关设置，
 * 主要是处理跨域资源共享（CORS）的配置。
 * 该类实现了 WebMvcConfigurer 接口，重写了其中的方法来定制 MVC 行为。
 */
@Configuration
public class MvcConfiguration implements WebMvcConfigurer {

    /**
     * 重写 addCorsMappings 方法，用于配置跨域请求的规则。
     * 跨域请求是指浏览器从一个域名的网页去请求另一个域名的资源，
     * 该方法可以设置允许跨域的路径、来源、请求方法、请求头和暴露的响应头。
     *
     * @param registry 用于注册跨域映射的 CorsRegistry 对象
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .exposedHeaders("Content-Disposition");
    }
}
